<?php
/**
 * Created by JetBrains PhpStorm.
 * User: thinhhung
 * Date: 5/30/12
 * Time: 2:30 PM
 * To change this template use File | Settings | File Templates.
 */

class UsersController extends AppController
{

    public function beforeFilter()
    {
        parent::beforeFilter();
        $this->Auth->allow('add', 'logout');
    }

    function login()
    {
        $this->layout = 'frmLogin';
        if ($this->request->is('post')) {
            if ($this->Auth->login()) {
                $n = $this->Auth->user('MANV');
                $this->Session->write('nvien', $n);
                $cap = $this->Auth->user('CAP');
                $this->Session->write('cap', $cap);

                if ($cap == '3') {
                    $this->Session->write('quyen', 'quantri');
                } else if ($cap == '2') {
                    $this->Session->write('quyen', 'quanly');
                } else if ($cap == '1') {
                    $this->Session->write('quyen', 'nhanvien');
                }

                $manv = $this->Auth->user('MANV');
                $this->Session->write('manhanvien', $manv);
                $tennv = $this->User->NhanVien->findAllById($manv); //ten nhan vien dang nhap vao he thong
                $this->Session->write('tennv', $tennv);
                $idv = $this->Auth->user('id');
                //$this->set('manv', $manv); //ma nhan vien dang nhap vao he thong
                $this->Session->write('idnv', $idv);

                $this->redirect(array('controller' => '', 'action' => 'index'));
            } else {
                $this->Session->setFlash("Sai tên đăng nhập hoặc mật khẩu");
            }
        }
    }

    function logout()
    {
        $this->redirect($this->Auth->logout()); //tu dong chuyen trang sau khi logout
        $this->Session->destroy();
    }

    var $paginate = array(
        'limit' => '7',
        'order' => array(
            'user.id' => 'asc',
            'user.TenHG' => 'asc'
        )
    );

    public function index()
    {
        if ($this->Session->read('quyen') == 'quantri') {
            $this->set('title_for_layout', 'Quản lí người dùng');
            $this->User->recursive = 0;
            $this->set('users', $this->paginate());

            $manv = $this->Auth->user('MANV');
            $tennv = $this->User->NhanVien->findAllById($manv); //ten nhan vien dang nhap vao he thong
            $this->set('tennv', $tennv);

        } else {
            $this->redirect(array('controller' => '', 'action' => 'index'));
        }
    }

    public function view_acc($id)
    {
        if ($this->Auth->user('id') == $id) {
            $this->set('title_for_layout', 'Thông tin người dùng');
            $this->User->id = $id;
            $this->set('user', $this->User->findById($id));
        }
    }

    public function edit_acc($id = null)
    {
        $this->User->id = $id;
        if ($this->Auth->user('id') == $id) {
            $this->set('title_for_layout', 'Cập nhật thông tin người dùng');
            if ($this->request->is('get')) {
                $this->request->data = $this->User->read();
            } else {
                if ($this->User->save($this->request->data)) {
                    $this->Session->setFlash('Thông tin người dùng đã được cập nhật');
                    $this->redirect(array('action' => 'view_acc', $id));
                }
            }
        }
    }


    public function add()
    {
        if ($this->Session->read('quyen') == 'quantri') {
            $this->set('title_for_layout', 'Thêm người dùng');
            if ($this->request->is('post')) {
                if ($this->User->save($this->request->data)) {
                    $this->Session->setFlash('Đã thêm người dùng mới vào danh sách');
                    $this->redirect(array('action' => 'index'));
                }
            }
        } else {
            $this->redirect(array('controller' => '', 'action' => 'index'));
        }
    }

    public function edit($id = null)
    {
        if ($this->Session->read('quyen') == 'quantri') {
            $this->set('title_for_layout', 'Cập nhật thông tin người dùng');
            $this->User->id = $id;
            if ($this->request->is('get')) {
                $this->request->data = $this->User->read();
            } else {
                if ($this->User->save($this->request->data)) {
                    $this->Session->setFlash('Thông tin người dùng đã được cập nhật');
                    $this->redirect(array('action' => 'index'));
                }
            }
        } else {
            $this->redirect(array('controller' => '', 'action' => 'index'));
        }
    }

    public function delete($id)
    {

        if ($this->Session->read('quyen') == 'quantri') {
            if (!$this->request->is('post')) {
                throw new MethodNotAllowedException();
            } else {
                if ($this->User->delete($id)) {
                    $this->Session->setFlash('Đã xóa người dùng ra khỏi danh sách');
                    $this->redirect(array('action' => 'index'));
                }
            }
        } else {
            $this->redirect(array('controller' => '', 'action' => 'index'));
        }
    }
	
	function admin_process(){
		if (!empty($this->data)) {
			$ids = array();              
			foreach($this->data['User']['id'] as $id => $value){
				if($value == 1){
				  $ids[] = $id;
				}
			}
			if (count($ids) == 0) {
				$this->Session->setFlash(__('Không có người dùng nào được chọn', true));
				$this->redirect(array('action'=>'index'));
			}
				if($this->User->deleteAll(array('User.id'=>$ids))){
						$this->Session->setFlash(__('User deleted', true));
						$this->redirect(array('action'=>'index'));
				}
		}
	}
}

